home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Utilities Professional 1-1500
/
Utilities Professional 1-1500 (1994)(WPD)[!].iso
/
00010250
/
var0016.dms
/
var0016.adf
/
MakeFish
< prev
next >
Wrap
Text File
|
1990-06-04
|
18KB
|
362 lines
How to make and add your own "fishTank" fish
* makeFish.doc *
--************--
The fishTank was designed to accept fish other than just
those that it came with. Once you have had experience using the
fishTank for a while you may want to add some of your own fish.
This file explains how to build a fish of your own description to
add to the fishTank.
First you will need to draw pictures of the fish's parts.
The parts need to be HAM-mode brush files. Most major HAM-mode
paint packages will work. I used Photon Paint to make most of the
brushes and DigiPaint3 and Deluxe Photo Lab for the rest.
I would generally recommend making rectangular brushes (that
way you know what size they are). One thing to make sure of is
that you use the same palette as the tank background pictures for
all the fish parts you draw. You can do this by loading a tank
background picture (a .pix file) and then clearing the screen to
color zero (black). Remember that since this is HAM-mode you can
get any color, regardless of whether it is in the palette. The
other thing to be sure of is that the 'background' or
'transparent color' of all your brushes is color zero.
As a starting point for most fish I would recommend drawing
two body brushes and three of each of the fins (or perhaps three
body brushes and two of each fin). It's a good idea to keep all
the brushes of one fish in a directory named for that fish, and
to name all your brushes with a ".br" extension to differentiate
them from other types of files that you will be using (such as
".pix" files for background pictures, and ".ascii" files for
fish-headers that will be described later).
Now that you've gone and drawn your brushes, and saved them
to a disk, you're ready to make a "fish-header file". In order to
do this you will need two things:
1. Some information about the fish - This information
is available in any number of reference books. I got most of my
information from Dr. Axelrod's Mini-Atlas of Freshwater Aquarium
Fishes, but if you don't have a copy of that handy, use whatever
reference books on fish you do have. Some books geared to
beginners may not have the information you need, if this is the
case you should try to find Dr. Axelrod's Atlas or Mini-Atlas at
your local public library.
Bare in mind that this fishTank is a freshwater tank
and will not be accurate in simulating the environment of
saltwater or brackish-water fishes.
2. A text editor - I've been using micro-Emacs, which
those of you who have Workbench1.3 will be able to find on your
"Extras" disk in the tools directory (it's called mEmacs). If you
don't have a version of emacs you can either get one off a
bulletin-board or use notepad or some other editor, but be sure
not to use any special fonts.
Page 1
How to make and add your own "fishTank" fish
Now you're ready to start. Edit a new file and call it by
the name of your fish with a ".ascii" extension (for example:
swordtail.ascii). The format of this file is quite fussy; there
must be no extra lines, and the lines I've set aside for
comments actually need to have comments on them. I would suggest
copying one of the ".ascii" files you already have (the ones I
wrote) and editing that. (For the examples I will use a swordtail
with two body brushes named "body-1.br" and "body-2.br", three
tail brushes named "tail-1.br" etc., and three dorsal fin brushes
named "dfin-1.br" and so on for a total of eight brushes. I will
also assume these brushes are in a directory called "swordtail"
on a disk called "fish:".)
When I look up swordtail (Xiphophorus helleri) in the
Mini-Atlas I see the following information:
pH 7.3
hardness 14 DH
temperature 25 degrees Celsius
lighting bright, no sunlight
aggressiveness not aggressive
tank conditions densely planted
swimming habits all over the tank
food flakes
Now all you need to do is put all that information and the
names and locations of the brushes in your ".ascii" file.
Building the fish-header (".ascii") File
-----------------------------------------------------------------
The first two lines should be comments. You will notice that
I use these lines for the fileName, but you can use them any way
you want to.
Line #3: The first three characters on this line should be a
number describing the starting horizontal position for your fish.
Since this is a low-res screen this number must be between zero
and 320, but remember that your fish takes up space too, so the
upper limit to this number will actually be 320-the length of
your fish. The fishTank only looks at the first three characters
on this line, so don't put any spaces or tabs before the number.
If this number is a one or two digit number you can put spaces
after it to get to three characters. You can, but do not need to,
put a comment on the remainder of this line, but make sure this
line is no more than 80 characters long (including spaces -
this shouldn't be a problem in most editors).
Line #4: This line should contain the vertical starting
position. Use the same three-character format as line #3. This
number needs to be between 12 (we leave a few pixels of space at
the top for the menu bar) and 200-the height of your fish. If
your fish's swimming habits are not all over the tank (like the
Page 2
How to make and add your own "fishTank" fish
swordtail in the example), this number should be between the
fish's upper swimming limit and its lower swimming limit minus
the height of the fish.
Line #5: The horizontal velocity of the fish. Make this
either 1 or -1 to start out with, depending on weather you want
your fish to start swimming from left to right(1) or right to
left(-1). Once you've seen your fish swimming in the tank you can
use these to adjust its speed. Larger values could be used here,
but keep them from being to large or small (try using values
between -4 and 4), or your fish will not swim fluidly. Once again
keep the same three-digit number format as line #3. That is the
format that all the lines that contain numbers must have.
Line #6: The vertical velocity of the fish. Use the same
guidelines as line #5, but here -1 will start your fish going up
and 1 will start it going down.
Line #7: Horizontal translation value. Make this number zero
for now. If you have set the velocities (lines 5 and 6) to
anything other than zero, the translations should remain zero.
Line #8: Vertical translation value. Use zero to start out
with. To control the motion of the fish you will either want to
set the velocities or the translations, but not both. With my
fish the velocities tend to yield a slightly smoother motion than
the translations, but fish could be drawn to work better with
either type of animation.
Line #9: Top of swimming area. This should be between 12
(for a fish that swims either all over the tank or near the top)
and around 170 (for a bottom swimmer, like a catfish).
Line #10: Bottom of swimming area. This should be bigger
than the number on line #9, and no larger than 200.
Line #11: Optimum temperature in degrees Celsius. For the
swordtail this should be 25. If you can only find the temperature
in Fahrenheit you will need to convert it with this formula:
Celsius = ( Fahrenheit - 32 ) * 5 / 9
Line #12: Optimum pH. This is the acidity of the water. You
need to have only one digit after the decimal point, any more
will mess things up. For the swordtail this number would be 7.3 .
Most fish will need the pH to be relatively close to 7.0, which
is neutral.
Line #13: Optimum hardness in DH. This number reflects the
amount of calcium in the water. Lower numbers mean there is less
calcium. If you can't find the correct hardness for your fish, it
is usually safe to assume it to be about 9 or 10. The swordtail
likes a hardness of 14 which is harder than most other fish. If
you can only find this value in "parts per million" (or p.p.m.)
use this formula:
DH = ppm / 18
Line #14: Length of your fish in pixels. Just how long is
your fish? This will depend on how long the brushes are. This
value need not be exact. If you think your fish is about a
quarter as wide as the whole screen that would make it (... lets
Page 3
How to make and add your own "fishTank" fish
see the screen is 320 wide and 320 divided by 4 is ...) 80 pixels
wide. By the way if you make your fish very big it will slow down
the whole fishTank, and if it is 300 pixels wide (or more) you
won't be able to put them in the tank at all ( You'll be told it
is too big).
Line #15: Height of your fish in pixels. This can also be
approximate. Since the screen is 200 pixels tall, if your fish is
about a quarter the height of the screen this number would be 50.
Line #16: Aggressiveness. If your fish is called a
"peaceful community fish" like the swordtail, this should be
zero. Actually almost any fish you would want to add would fit
this description. ( This feature has not yet been implemented -
so you can put anything here and not affect the fishTank. )
Line #17: Food type. What type of food best describes your
fish's regular diet. Enter the number that corresponds to your
choice:
0 flakes or other prepared foods
1 worms or other small, living creatures
2 live fish such as 'feeder' guppies
3 vegetables or other plant materials
4 goldfish flakes or other goldfish food
If you're not sure what the fish normally eats, and if it's a
fairly common aquarium fish, zero is probably is a pretty safe
guess. (Goldfish flakes is a different code than 'normal'
tropical fish flakes because goldfish preparations normally
contain a good deal more protein.)
Line #18: Type of lighting. Just about any fish you would
want to have in your fishTank will require the 'normal' type of
lighting, so make this "1" unless you find something quite
unusual about your fish's requirements. Codes are as follows:
0 very bright with some sunlight
1 'normal' - bright with no sunlight
2 as dark as possible
( This feature is not yet implemented. )
Line #19: Type of tank the fish prefers. These are the
codes:
0 densely planted
1 rocks, no plants
2 gravel only (no rocks or plants)
3 rocks, plants, and driftwood
( This feature has not yet been implemented. )
Line #20: This line is a comment. Put anything you want
here, just don't leave it out.
Line #21: The number of fish parts. In our swordtail example
this would be "3" since that fish has some body-brushes some
tail-brushes and some dorsal-fin-brushes. Don't confuse this with
the total number of brushes which would be "8" for the swordtail.
Line #22: Number of brushes in the first fish part. In the
case of the swordtail we might want this to be the number of
"body-brushes" (which is "2"). The order in which you specify the
Page 4
How to make and add your own "fishTank" fish
brushes in this list will be the order in which they are drawn,
so the brush that you want to be on top should be last in the
file.
Line #23: Name of the first brush. This line should contain
the name of the first brush of the first fish part. You should
include the path in this name, and the full path and name should
take up no more than 40 characters (try giving the directory or
the brushes shorter names if this is a problem). In the example
this line would be:
fish:swordtail/body-1.br
The name must start at the beginning of the line, and there must
not be any comments following it.
Line #24: The relative horizontal position of this brush.
This number describes where the upper lefthand corner of this
brush should be relative to the other brushes in the fish. It can
be fairly tricky to come up with these numbers, and will likely
need some fine-tuning. A good place to start may be to look at
what these values are in one of my ".ascii" files. Choose one of
a fish that faces the same direction and is about the same size,
and copy the values. You will then be able to make adjustments
once you've seen your fish in the fishTank.
Line #25: Relative vertical position. See line #24.
Line #26: Name of next brush in this fish part. In the
example this would be "fish:swordtail/body-2.br". Use the same
guidelines as line #23 for this and all the "brush name" lines.
Lines #27 and #28: Horizontal and vertical positions for the
brush named in the previous line. See line #24 for details.
If there were more than two brushes in the first part of your
fish you would just keep going with lines like 23 through 25 (or
26 through 28) until you had finished all the brushes if the
first fish part. When you had finished with them you would
continue with what I call line #29, but which may be in a
different place in your file.
Line #29: The number of brushes in the second fish part. In
the example this could be the number of "tail brushes" (which
would be "3"). (...and yes, if the brushes are not going to
overlap, it won't matter what order you have them in ...) See
line #22 for more details.
Lines #30, #31, and #32: Name and relative positions for the
first brush in the second part of the fish. The example lines
would be "fish:swordtail/tail-1.br", followed by two lines with
one number on each.
By now this pattern should be looking very systematic to you. You
keep entering three-line sequences of Name, xPosition and
yPosition until you run out of brushes in the fish part. Then you
use one line to contain the number of brushes in the next part,
and start the same three-line sequences again. Just keep doing
this until you've given names and positions for all the brushes
Page 5
How to make and add your own "fishTank" fish
you have in your fish. Your last line in this section will,
obviously, be the yPosition of the last brush of the last part of
your fish. (p.s.- There's nothing wrong with having a fish part
with only one brush in it. Look at "snail.ascii" for an example
of this - it has only one "shell" brush.)
Resume here once all your brush information has been put in your
file.
Last Line: This line will contain the name for this fish as
you would like to have it appear on the menu (sorry folks, no pun
was intended) . For the example "swordtail" would do quite well.
Try to keep this name short, or the menu will look sloppy. I use
common-names for the fish, and would suggest you do the same, as
latin names are frequently rather lengthy. As you may have
already figured out, you may not have a comment on this line, and
the name should start right at the beginning of the line.
"Last Line" was somewhat of a misnomer for the line that has the
menu-item name. It is actually the last line the program looks
at, but you can have as many lines of comments after this as you
want. The end of the file is perhaps the best place to put any
special notes you might have about this fish.